Usando entornos virtuales¶
En la clase anterior dimos una previsualización sobre los ambientes virtuales y como estos ambientes virtuales evitarían que existan choques entre módulos , al tener un ambiente compartido.
Ambientes virtuales¶
Lo primero que vamos a hacer saber donde se ejecuta Python, hay que correr los siguientes comandos en la terminal:
which python3 #Ubicación del binario de Python3
which pi3 #Ubicación del binario de pip3
Esto nos dice en donde se encuentra de forma global.
Instalar entornos virtuales¶
Tenemos que descargar el siguiente paquete para poder trabajar con entornos virtuales:
apt install -y python3-venv
Me sale que no tengo permisos y procedo a correr el siguiente comando como administrador.
sudo apt install -y python3-venv
Termino la instalación
Listar los proyectos:
Como se puede observar tenemos 3 proyectos:
- app
- charts
- game
Para cada uno de los proyectos vamos a crear su propio ambiente.
Creando ambiente virtual en app¶
Ejecutemos los siguientes comandos:
#saber en que directorio estoy
pwd
cd app
#Creamos el entorno virtual con el nombre "env-app"
python3 -m venv env-app
NOTA: Debemos recordar que tenemos que estar dentro de la carpeta app.
Cuando ejecutamos el comando nos sale una carpeta con el mismo nombre.
Activando el ambiente virtual¶
Volvemos a la terminal y escribimos lo siguiente:
#Activar el entorno dentro de la carpeta creada
source env-app/bin/activate
También podemos salir del ambiente virtual del que estamos
#Desactivar el entorno
deactivate
Como se puede observar en la terminal, regresamos al entorno base. y ya no nos aparece "env-app".
Entonces siempre habrá un indicativo si tenemos el ambiente virtual prendido o apagado.
Verificando donde se encuentra Python¶
Si activamos nuevamente el entorno y preguntamos donde se encuentra Python instalado, nos aparecerá lo siguiente:
#Activar el entorno virtual
source env-app/bin/activate
#preguntar donde se encuentra Python
which python3
Ahora tanto python como pip apuntan al directorio del proyecto app.
Esto es una manera de verificar si tenemos configurado el ambiente de una forma correcta
Verificando librerías¶
Corramos el siguiente comando en la terminal:
pip3 freeze
No sale nada, es decir no nos salen las librerías instaladas.
¿Por qué? Porque ahora tenemos el ambiente aislado, es decir en este ambiente no se ha instalado ningún modulo.
Antes nos salían todos los paquetes que teníamos instalados, o que Python instala por defecto en toda la maquina, pero solo necesitamos los paquetes que usemos en este proyecto app.
¿Cuales necesitamos?
- matplotlib
Vamos a instalarlo y verificar que estemos con el ambiente virtual encendido.
#instalar librería
pip3 install matplotlib
#verificar librerias
pip3 freeze
Nos arroja lo siguiente:
Vemos que las dependencias que tiene este proyecto, ya se encuentran aisladas, además que ya no van a chocar las librerías. Desactivemos el entorno y revisemos que librerías tenemos:
deactivate
cd ..
pip freeze
Debido a que me dió error, tengo que correr el siguiente comando, para ver si funciona:
source miniforge3/bin/activate
Me sigue dando error. Tal vez se deba a que tengo instalado Miniforge con conda y mamba.
Creando otro entorno virtual¶
Procederemos a ir a la carpeta game y crear otro entorno virtual, corremos los siguientes comandos:
#Ir al directorio
cd game
#Crear un entorno virtual
python3 -m venv env-game
#Entrar al ambiente
source env-game/bin/activate
#instalar otras librerías
pip3 install matplotlib==3.5.0
Instalamos
Listo!, verificamos que versiones existen con pip3 freeze:
Desactivamos los entornos:
Vemos que existen versiones diferentes de matplotlib
y ademas ubicaciones diferentes de python:
Así ya cada proyecto tiene sus propios módulos de forma aislada y librerías.